Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

316
Visualizações
Verifique la cadena en "response.content" generando "TypeError: se requiere un objeto similar a bytes, no 'str'"

Estoy tratando de ver si una oración está presente en la respuesta de una solicitud.

 import requests r = requests.get('https://www.eventbrite.co.uk/o/piers-test-16613670281') text = 'Sorry, there are no upcoming events' if text in r.content: print('No Upcoming Events')

Estoy teniendo el siguiente error:

 TypeError: a bytes-like object is required, not 'str'

No estoy muy seguro de por qué ocurre esto y cuál sería la solución.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

r.content es un objeto de bytes pero text es str , por lo que no puede hacer la __contains__ ( in ) en otro directamente.

Puede (re)definir fácilmente el objeto de text para que sea una cadena de bytes:

 text = b'Sorry, there are no upcoming events'

Ahora, puede hacer if text in r.content: .

o puede usar r.text para obtener la representación de str directamente y usar el text tal cual (como str ).

over 4 years ago · Santiago Trujillo Relatório

0

r.content devuelve un objeto similar a bytes en Python 3.x. Para verificar, haga:

 >>> type(r.content) <class 'bytes'>

Hay varias formas de solucionar su problema. Por ejemplo:

  1. Decodificar r.content a cadena : puede decode a cadena como:

     >>> text in r.content.decode() False
  2. Convierta r.content a cadena utf-8 como:

     >>> text in str(r.content, 'utf-8') False
  3. Defina su text para buscar como una cadena de bytes . Por ejemplo:

     text = b'Sorry, there are no upcoming events' # ^ note the `b` here

    Ahora puede simplemente usarlo con r.content como:

     >>> text in r.content False
  4. Use r.text en lugar de r.content para buscar la cadena, que como sugiere el documento :

    La codificación de texto adivinada por Solicitudes se usa cuando accede a r.text .

    Por lo tanto, puede simplemente hacer:

     >>> text in r.text False
over 4 years ago · Santiago Trujillo Relatório

0

Las solicitudes devuelven un objeto de bytes, debe convertirlo en una cadena antes de realizar la entrada

Aquí hay una referencia sobre tipos integrados, uno de los cuales es bytes https://docs.python.org/3/library/stdtypes.html

la línea de código que estás buscando es algo así como,

 if text in r.content.decode(): print('No upcoming events')

por defecto, la decodificación asume utf-8, aunque puede pasar una codificación diferente si lo necesita.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda